package com.yq.day18._03inner;

/**
 * @author 3307235355@qq.com
 * @since 2022/06/18 08:58
 * 静态内部类
 * * 主要从以下几个角度研究：
 * *
 * *      1.静态内部类内部访问外围类成员
 * *          直接创建外围类对象即可,访问不受权限限制.
 * *
 * *      2.外围类访问静态内部类成员
 * *          直接创建静态内部类对象即可,访问不受权限限制.
 * *
 * *      3.外部类访问静态内部类成员(了解即可)
 * *          全程受权限限制
 * *          而且注意:
 * *              这里访问静态内部类成员,不再需要创建外围类对象了
 * *              直接new创建静态内部类对象即可
 * *          语法:
 * *              EnclosedClazz.NestedClazz nc = new EnclosedClazz.NestedClazz();
 * *
 * * 静态内部类访问外部类成员
 */
public class Demo02 {
    public static void main(String[] args) {
        // 可以近似把静态内部类看成外围类的静态成员
        C.D d = new C.D();
        d.test();
    }
}

class C {
    int a = 90;

    public void test1() {
        D d = new D();
        System.out.println(d.b);
    }

    static class D {
        int a = 12;
        int b = 20;

        public void test() {
            C c = new C();
            System.out.println(c.a);
            System.out.println(a);
        }
        public static void test01(){
            C c = new C();
            System.out.println(c.a);
            System.out.println(new D().a);
            System.out.println(new D().b);
        }
    }

}
